/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import pe.com.cotelasa.common.dao.excepcion.DAOException;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.CajaChica;
import pe.com.cotelasa.scp.entidad.DocumentoSustentador;
import pe.com.cotelasa.scp.entidad.MovimientoCajaChica;
import pe.com.cotelasa.scp.entidad.Sede;

/**
 *
 * @author DESARROLLO01
 */
public interface IServicioCajaChica {

    public void registrarCajaChica(CajaChica cajaChica) throws ServiceException;

    public ResultadoServicio actualizarCajaChica(CajaChica cajaChica) throws ServiceException;

    public void eliminarCajaChica(CajaChica cajaChica) throws ServiceException;

    public Collection<CajaChica> listarCajaChicaActivas() throws ServiceException;

    public Collection<CajaChica> listarCajaChicaPorFiltro(CajaChica cajaChica, Date fechaInicio, Date fechaFinal) throws ServiceException;

    public Collection<MovimientoCajaChica> listarTodosMovCajaChica(CajaChica cajaChica) throws ServiceException;

    public Collection<CajaChica> obtenerCajaChicaBusqueda(CajaChica cajaChica) throws ServiceException;

    public Collection<CajaChica> listarCajaChicaCerradaPorSede(CajaChica cajaChica) throws ServiceException;
    
    public Collection<CajaChica> listarCajaCerradaPorSedeConSaldo(CajaChica cajaChica) throws ServiceException;

    public CajaChica conseguirCajaChicaPorId(Integer idCajaChica) throws ServiceException;

    public List<CajaChica> listarCajaChicaPorSede(Sede idSede, String nombre) throws ServiceException;
}
